package com.talkweb.securitycamera.common.interfaces.dataprocess;

import com.talkweb.securitycamera.common.constans.FileType;
import com.talkweb.securitycamera.common.interfaces.entity.IBaseFileEntity;
import ohos.app.Context;

import java.util.List;

/**
 * 文件处理接口
 *
 * @author : frank
 * @date : 2021/1/26 16:56
 */
public interface IFileProcessor<T extends IBaseFileEntity, V> {

    /**
     * 获取所有文件
     *
     * @return all the files
     */
    List<T> getFileList(FileType type);

    /**
     * 查询起始时间到结束时间内的文件
     * get files during startTime and end time
     *
     * @param startTime 起始时间
     * @param endTime   结束时间
     * @return files during start time and end end time
     */
    List<T> getFileListByTime(long startTime, long endTime, FileType type);

    /**
     * 获取文件名包含关键字的所有文件
     * get files which name contain keyword
     *
     * @param keyword the included keyword
     * @return files which name contain the keyword
     */
    List<T> getFileListByKeyword(String keyword, FileType type);

    /**
     * 新增文件
     * add one file
     *
     * @param
     */
    void addFile(V source, FileType type);

}
